In computer networks, a protocol known as Stream Control Transport Protocol (SCTP) provides resilience towards network failures by having the capability to select between several Internet Protocol (IP) paths for an association, e.g. a communication link or the like, between two nodes, aka End-Points (EP). This means that SCTP is a layer on top of an IP layer. A further layer on top of the SCTP layer is referred to as a SCTP user, or upper layer, herein. See e.g. Request For Comments (RFC) 4960, Internet Engineering Task Force (IETF).
The association is used by SCTP for transmission of information between the two nodes. A function for selection between several IP paths is often referred to as multi-homing. The Association is a peer-to-peer connection that allows multiple streams, e.g. on several Internet Protocol (IP) paths. The IP paths can be routed different routes through a network. Thus, if one path is congested, SCTP may switch to another path in order to enable continued traffic on the association handled by SCTP. This means that the association can exploit more than a single path in the network in order to achieve robustness and reliability.
With SCTP, data are transferred between the nodes by adopting a chunk paradigm. The chunk paradigm means that an SCTP packet includes one or more chunks. The chunk is the unit of information within an SCTP packet. The chunk may transport data or control information for protocol handling.
SCTP uses Selective Acknowledgement (SACK) on chunk basis, which means that each single data chunk within an SCTP packet is acknowledged and—if needed—retransmitted, independently from other chunks.
The Association has a reception buffer comprising received chunks that are not transferred to the SCTP user yet, and a transmission buffer that keeps all data that has not been successfully transferred to the remote peer.
As is well known, computers and computer systems capable of parallel processing are becoming more and more widespread. In this context, SCTP has been adapted to take advantage of the parallel processing capacity of such computer systems.
In a known implementation of SCTP, it is possible to scale up within an SCTP Endpoint, for instance by dedicating independent resources to each Association. With this know implementation, a SCTP Host that needs to handle a large number of Associations, can exploit additional computational resources for parallel processing of different associations.
As an example, US20080101357 discloses a method and apparatus for IP network interfacing that provides a possibility to have an arbitrary number of computational resources within an SCTP EP by exploiting a computer network hidden behind a Network Address Translation (NAT).
A problem with the known implementation is that multiple computational resources may not improve performance within a single association. A common prejudice among persons skilled in SCTP is that an implementation of SCTP that allows for parallel processing of a single association is impossible due to the sequential nature of RFC2960, superseded by RFC4960 and further corrections which specifies SCTP as a standard.
As a result, capacity of an association between two SCTP EPs is limited by capacity of a single computational resource for each of the two SCTP EPs.